package com.spic.business.accident.instant.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.spic.business.accident.instant.domain.AccidentInstantReport;
import com.spic.business.accident.instant.domain.AccidentInstantReportPartySubtable;

import java.util.List;

/**
 * 事故即时报告Mapper接口
 *
 * @author spic
 * @date 2021-11-30
 */
public interface AccidentInstantReportMapper extends BaseMapper<AccidentInstantReport>
{
    /**
     * 查询事故即时报告
     *
     * @param id 事故即时报告主键
     * @return 事故即时报告
     */
    public AccidentInstantReport selectAccidentInstantReportById(Long id);

    /**
     * 查询事故即时报告列表
     *
     * @param accidentInstantReport 事故即时报告
     * @return 事故即时报告集合
     */
    public List<AccidentInstantReport> selectAccidentInstantReportList(AccidentInstantReport accidentInstantReport);

    /**
     * 新增事故即时报告
     *
     * @param accidentInstantReport 事故即时报告
     * @return 结果
     */
    public int insertAccidentInstantReport(AccidentInstantReport accidentInstantReport);

    /**
     * 修改事故即时报告
     *
     * @param accidentInstantReport 事故即时报告
     * @return 结果
     */
    public int updateAccidentInstantReport(AccidentInstantReport accidentInstantReport);

    /**
     * 删除事故即时报告
     *
     * @param id 事故即时报告主键
     * @return 结果
     */
    public int deleteAccidentInstantReportById(Long id);

    /**
     * 批量删除事故即时报告
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteAccidentInstantReportByIds(Long[] ids);


    /**
     * 批量删除事故及时报告-当事人信息子表
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteAccidentInstantReportPartySubtableIds(Long[] ids);

    /**
     * 批量新增事故及时报告-当事人信息子表
     *
     * @param accidentInstantReportPartySubtableList 操作票子列表
     * @return 结果
     */
    public int batchAccidentInstantReportPartySubtable(List<AccidentInstantReportPartySubtable> accidentInstantReportPartySubtableList);


    /**
     * 通过事故及时报告ID 删除当事人信息子表
     *
     * @param id 操作票ID
     * @return 结果
     */
    public int deleteAccidentInstantReportPartySubtableByParentId(Long id);
}
